package cn.myfirefly.moming.house.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import cn.myfirefly.moming.house.dao.SpfTradeReturnVisitDao;
import cn.myfirefly.moming.house.entity.SpfTradeReturnVisit;
import cn.myfirefly.moming.house.model.ReturnVisitCountDto;
import cn.myfirefly.moming.house.model.ReturnVisitCountFilterDto;
import cn.myfirefly.moming.house.model.SpfTradeReturnVisitDto;
import cn.myfirefly.moming.house.model.SpfTradeReturnVisitFilterDto;
import cn.myfirefly.core.Const;
import cn.myfirefly.core.model.PageResultDto;
import cn.myfirefly.utils.BeanUtil;

@Service
@Transactional
public class SpfTradeReturnVisitService {

	@Autowired
	private SpfTradeReturnVisitDao spfTradeReturnVisitDao;
	
	public PageResultDto<SpfTradeReturnVisit> getList(SpfTradeReturnVisitFilterDto dto) {
		
		return spfTradeReturnVisitDao.getList(dto);
	}
	
	public PageResultDto<ReturnVisitCountDto> getReturnVisitCountList(ReturnVisitCountFilterDto dto) {
		
		return spfTradeReturnVisitDao.getReturnVisitCountList(dto);
	}
	
	public List<ReturnVisitCountDto> getReturnVisitCountAllList(ReturnVisitCountFilterDto dto) {
		
		return spfTradeReturnVisitDao.getReturnVisitCountAllList(dto);
	}
	
	public PageResultDto<SpfTradeReturnVisit> getList(Integer tradeContractId, SpfTradeReturnVisitFilterDto dto) {
		
		return spfTradeReturnVisitDao.getList(tradeContractId, dto);
	}
	
	public SpfTradeReturnVisitDto getSpfTradeReturnVisit(Integer id) {
		SpfTradeReturnVisit spfTradeReturnVisit = spfTradeReturnVisitDao.get(id);
		SpfTradeReturnVisitDto spfTradeReturnVisitDto = BeanUtil.copyBeans(SpfTradeReturnVisitDto.class, spfTradeReturnVisit);
		return spfTradeReturnVisitDto;
	}
	
	public String del(Integer id) {
		SpfTradeReturnVisit spfTradeReturnVisit = spfTradeReturnVisitDao.get(id);
		if (spfTradeReturnVisit == null) {
			return "该信息不存在，请尝试刷新列表后再操作。";
		}
		spfTradeReturnVisitDao.del(spfTradeReturnVisit);
		return Const.ResultCode.SUCCESS;
	}
	
	public Integer insert(SpfTradeReturnVisitDto dto) {
		SpfTradeReturnVisit spfTradeReturnVisit = BeanUtil.copyBeans(SpfTradeReturnVisit.class, dto);
		return spfTradeReturnVisitDao.save(spfTradeReturnVisit);
	}
	
	public Integer update(SpfTradeReturnVisitDto dto) {
		SpfTradeReturnVisit spfTradeReturnVisit = spfTradeReturnVisitDao.get(dto.getId());
		if (spfTradeReturnVisit == null) {
			return -1;
		}
		BeanUtil.copyBeans(dto, spfTradeReturnVisit);
		return spfTradeReturnVisitDao.save(spfTradeReturnVisit);
	}
}
